export type Ref<T> = {
    value: T;
}

export type UnwrapRef<T> = T extends Ref<infer V> ? V : T;

export type Reactive<T> = {
    [K in keyof T]: T[K] extends object ? Reactive<T[K]> : Ref<T[K]>;
}